package com.abl.service.system;

import com.abl.common.mybatis.model.Dnt;
import com.abl.service.BaseService;

import java.util.List;

/**
 * 系统服务
 * 为后台API开发人员创建；
 * 服务于框架，而不是前端某些业务功能
 * <p>
 * 注意1-字典：字典的修改，必须通过管理系统页面，进行操作
 * 注意2-角色：
 */
public interface SysService extends BaseService {

    /**
     * 获取字典数据
     */
    List<Dnt> allDict();

    /**
     * 根据code获取字典完整信息
     */
    Dnt dict(String code);

    /**
     * 根据code获取字典value
     */
    String dictValue(String code);

    /**
     * 根据code获取字典value(可以给默认值)
     */
    String dictValue(String code, String defaultValue);

    List<Dnt> allApi();

    List<String> roleApiPath(Object roleId);

    List<String> roleApiPath(List<Object> roleIds);

    /**
     * 扫描API信息并插入数据库
     */
    void scanApiToDb();

    /**
     * 获取API信息
     */
    Dnt api(String path);

    /**
     * 服务启动初始化
     */
    void init();

}
